package com.tim.framework.util;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import javax.imageio.ImageIO;

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Image;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfWriter;

public class ImageProc {
	/**
	 * 将图片原尺寸写入pdf文件.
	 * 
	 * @param imgPath
	 *            图片路径.
	 * @param pdfFile
	 *            pdf文件.
	 */
	public static void writeToPdf(String imgPath, File pdfFile) {
		try {
			// 写PDF文件.
			BufferedImage img = ImageIO.read(new File(imgPath));
			FileOutputStream fos = new FileOutputStream(pdfFile);
			// 创建PDF文档
			Document doc = new Document(null, 0, 0, 0, 0);
			// 设置尺寸为图片尺寸
			doc.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));

			Image image = Image.getInstance(imgPath);
			// 设定图片的宽度&高度(自动缩放，但图片所占空间不变)
			// image.scaleAbsolute(width, height);
			// 设定缩放比率50%
			// image.scalePercent(50);
			// 保持原有宽高比缩放
			// image.scaleToFit(300, 300);
			// 逆时针旋转指定度数(不自动缩放图片，可能会有部分角度遮住部分图片)
			// image.setRotationDegrees(90);
			// image.setRotation(45);
			PdfWriter.getInstance(doc, fos);
			doc.open();
			doc.add(image);
			doc.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (DocumentException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
